diff --git a/django/db/models/base.py b/django/db/models/base.py
index 133adb6f3a..316441eabe 100644
--- a/django/db/models/base.py
+++ b/django/db/models/base.py
@@ -737,6 +737,11 @@ class Model(AltersData, metaclass=ModelBase):
             if field.is_cached(self):
                 field.delete_cached_value(self)
 
+        # Clear cached generic foreign keys.
+        for field in self._meta.private_fields:
+            if isinstance(field, GenericForeignKey) and field.is_cached(self):
+                field.delete_cached_value(self)
+
         self._state.db = db_instance._state.db
 
     async def arefresh_from_db(self, using=None, fields=None):
